iT邦幫忙

2024 iThome 鐵人賽

DAY 2
0

在開始聊後端相關的知識前,要先來聊聊後端的 scope,也就是

What is backend ?

參考一份蠻有名的後端 Roadmap 為例:
https://ithelp.ithome.com.tw/upload/images/20240907/20150927AhrRVaDDAI.png

後端的 scope 包含:
1. 基礎網路知識

  • 基本的網路知識: DNS、http、https、TCP/IP 和 OSI 七層等。

  • API 開發:設計和開發 API(應用程式介面),這些 API 用來與前端溝通,接收前端的請求並返回相應的資料或結果。

  • 常見 API 格式包括:
    REST API(基於 HTTP 協議)
    GraphQL API(更加靈活的查詢方式)

  • 資料處理與邏輯運算:後端負責處理業務邏輯,如商業邏輯計算等。

2. 框架與工具
使用各種框架和工具來加快開發速度和維護程式碼的品質。常見的後端框架包括:

  • 程式框架:
    Python:Django、Flask、Fastapi
    JavaScript:Node.js(Express)
    Java:Spring Boot
    Ruby:Ruby on Rails
    PHP:Laravel

  • 版控: Git、Svn 和 Mercurial等。

  • 基礎的 OS 知識: 檔案系統、進程與執行緒的管理、記憶體管理和 log 日誌管理等。

  • Workflow 自動化、Pipeline 和任務排程。如 Airflow、Dagster等。

  • Message Queue:解耦和提升系統可擴展性。如 RabbiMQ、Kafka、MQTT。

3. 資料庫系統
設計、管理和操作資料庫(CRUD),瞭解 ACID 準則,索引、分區等資料庫優化、備份資料庫和使用框架的 ORM 等。

資料庫類型:

  • 關聯式資料庫(SQL):如 MySQL、PostgreSQL 等,適合結構化資料。
  • 非關聯式資料庫(NoSQL):如 MongoDB 等,適合非結構化資料和高速存取需求。
  • 資料模型設計:合理設計資料庫的表格結構、索引等,以優化查詢性能和數據一致性。

4. 伺服器設定與部署
執行伺服器的設定與應用程式的部署,包括選擇運行環境、監控服務狀況及維護系統的可擴展性與安全性。

  • 雲端平台:使用如 AWS、Google Cloud、Azure 等來進行應用程式的部署和伺服器管理。

  • 容器化技術:使用 Docker 等容器技術來打包應用,使應用程式更易於部署和擴展。

  • 自動化工具:使用工具如 Ansible、Jenkins、GitHub Actions 和 Kubernetes等,以進行自動化測試和部署。

5. 安全性與授權
系統的安全問題,防止資料外洩、攻擊或非法操作。

  • 身份認證與授權:
    使用如 JWT(JSON Web Token)、OAuth 來管理使用者身份驗證,確保使用者合法地存取系統。
    資料加密:敏感資料(如密碼、信用卡資訊)需經過加密處理,會實施加密技術,如 SSL、TLS。

  • 防範資安問題:後端必須防範各類攻擊,如 SQL injection、XSS(cross-site scripting) 攻擊等。

6. 性能優化
確保系統具備高性能,能在高流量和大量請求下運行流暢。

  • Cache:使用 Redis、Memcached 等 Cache 技術來減少資料庫的壓力或節省資源。

  • 負載平衡:當有多個伺服器運行時,透過負載平衡技術如 Nginx、HAProxy 來分配流量,提升可用性。

  • 資料庫優化:使用索引、資料庫分區技術來提升查詢速度。

7. 系統設計
經驗更為豐富之後,可能就會遇到系統設計,當對各個相關技術都有一定的認識後,就能較好的根據需求做出更好的技術選型,使設計的系統具有較高的穩定性和容錯性。

Reference:


上一篇
Day-1 | 目標與預期
下一篇
Day-3 | 怎麼讓你的 API 更 Restful !
系列文
埋藏在後端工程下的地雷與寶藏12
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言